package com.dufang.string01;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class DemoSimpleDateFormate {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //1.String format(Date date)->将Date对象按照指定的格式转成String
        String time1=sdf.format(new Date());
        System.out.println("time1= "+time1);
        //2.Date parse(String source)->将符合日期格式的字符串转成Date对象
        String time2="2020-10-10 10:10:10";

        Date date=sdf.parse(time2);
        System.out.println("date= "+date);

        //第三代日期类
        /*
            LocalDate 只包含日期， 可以获得日期字段
            LocalTime 只包含时间 ，可以获取时间字段
            LocalDateTime 包含日期+时间，可以获取日期加时间字段
         */
        //第三代日期
        //使用now()返回表示当前日期的对象
        LocalDateTime ldt=LocalDateTime.now();
        System.out.println("年="+ldt.getYear());
        System.out.println("月="+ldt.getMonth());
        System.out.println("日="+ldt.getMonthValue());
        LocalDate now1=LocalDate.now();//可以获取年月日
        System.out.println("年月日： "+now1);
        LocalTime now2= LocalTime.now();//可以获取时分秒
        System.out.println("时分秒： "+now2);

        //格式化日期
        DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒");
        String format1=dateTimeFormatter.format(ldt);
        System.out.println(format1);//格式化日期

        //时间戳 通过静态方法now()获取表示当前时间戳的对象
        Instant now= Instant.now();
        System.out.println(now);
        //通过from方法可以把Instant转成Date
        Date date1= Date.from(now);
        System.out.println(date1);
        //通过date的toInstant方法可以把date转成Instant对象
        Instant instant=date.toInstant();//通过静态方法now()获取表示当前时间戳的对象
       // Instant now=Instant.now();
        System.out.println(now);

        //通过from方法可以把Instant转成Date
        Date date2=Date.from(now);
        System.out.println(date);
        //通过date的toStant方法可以把date转化成Instant对象
        Instant instant1=date2.toInstant();
    }
}
